package com.cougil.uoc.seghismed.webservice;

import javax.jws.WebService;

import com.cougil.uoc.seghismed.model.ciphed.HistorialCiphed;
import com.cougil.uoc.seghismed.model.ciphed.PacientCiphed;
import com.cougil.uoc.seghismed.model.ciphed.VisitaCiphed;

/**
 * Interfície del servei web que conté la signatura dels métodes oferts/consumits per l'aplicatiu
 * Pacient
 * 
 * @author Ignacio Cougil Jares
 * 
 */
@WebService
public interface PacientWebService extends CoreWebService {

	/**
	 * Retorna l'historial carregat i xifrat del pacient informat
	 *
	 * @param pacient
	 *            {@link PacientCiphed} xifrat pel qual es vol obtenir el seu historial
	 * @return historial xifrat {@link HistorialCiphed} només per al pacient informat
	 */
	public HistorialCiphed consultarHistorial(PacientCiphed pacient);

	/**
	 * Retorna el pacient xifrat amb totes les seves dades carregades
	 *
	 * @param pacient
	 *            {@link PacientCiphed} xifrat que es vol consultar
	 * @return pacient xifrat {@link HistorialCiphed} només per al pacient informat
	 */
	public PacientCiphed consultarPacient(PacientCiphed pacient);

	/**
	 * Retorna la visita carregada, xifrada i signada només per al pacient informat
	 *
	 * @param pacient
	 *            {@link PacientCiphed} xifrat pel qual es vol consulta la seva visita
	 * @param visita
	 *            {@link VisitaCiphed} xifrada les dades de la qual es vol consultar
	 * @return visita xifrada i signada només per al pacient referit
	 */
	public VisitaCiphed consultarVisita(PacientCiphed pacient, VisitaCiphed visita);

}
